#include <iostream>
#include <vector>
// class MyArray {
// private:
//     size_t ArraySize;

// public:
//     MyArray(size_t size) : ArraySize(size) {}

// public:
//     size_t size() { return ArraySize; }
// };


class MyArray {
public:
    // size 模拟数组大小的代理类 MyArraySize
    class MyArraySize {
    private:
        size_t size;

    public:
        MyArraySize(size_t size) : size(size) {}

    public:
        operator size_t() { return size; }
    };

private:
    MyArraySize ArraySize;

public:
    MyArray(MyArraySize size) : ArraySize(size) {}

public:
    MyArraySize size() { return ArraySize; }
};

void func(MyArray ayArray)
{
}


std::vector<bool> svb() 
{
    return {true, false, true, false};
}

int main() {
    func(MyArray(10));

    //func(10);
    

    MyArray myArr(10);
    auto size = myArr.size();
    int size_ = myArr.size();


    auto svb1 = svb()[0];
    std::cout << svb1 << std::endl;

    bool svb1_ = svb()[0];
    std::cout << svb1_ << std::endl;

    auto _sbv1_ = static_cast<bool>(svb()[0]);
    std::cout << _sbv1_ << std::endl;
    return 0;
}